# 构建阶段
FROM golang:1.21-alpine AS builder

# 设置工作目录
WORKDIR /app

# 安装必要的构建工具
RUN apk add --no-cache gcc musl-dev

# 复制go.mod和go.sum文件
COPY go.mod go.sum ./

# 下载依赖
RUN go mod download

# 复制源代码
COPY . .

# 构建应用程序
RUN CGO_ENABLED=0 GOOS=linux go build -o main .

# 最终阶段
FROM alpine:latest

# 设置工作目录
WORKDIR /app

# 从构建阶段复制编译好的二进制文件
COPY --from=builder /app/main .
COPY --from=builder /app/config.yaml .

# 设置环境变量，标识在Docker容器中运行
ENV DOCKER_CONTAINER=true

# 设置时区
RUN apk add --no-cache tzdata
ENV TZ=Asia/Shanghai

# 设置权限
RUN chmod +x /app/main

# 直接运行main程序
CMD ["./main"]

# 暴露端口（如果需要）
# EXPOSE 8080
